import {getHistoryList, getInfo, removeHistoryList, removeInfo, setHistoryList, setInfo} from '@/utils/storage'

export default {
  namespaced: true,
  state() {
    return {
      // 这里相当于数据初始化，初始有就可以拿到，否则初始就没东西，需要依靠后续的 mutations 来更新数据
      userInfo: getInfo(),
      globalHistory: getHistoryList()
    }
  },
  mutations: {
    // 设置个人信息
    SET_USER_INFO(state, userInfo) {
      state.userInfo = userInfo
      setInfo(userInfo)
    },

    // 移除个人信息
    REMOVE_USER_INFO(state) {
      state.userInfo = {} // 给空对象，防止 userInfo.token =》 undefined.token
      removeInfo() // 移除本地个人信息
    },

    // 添加搜索历史记录
    SET_HISTORY(state, item) {
      // 查找历史记录有没有key
      const index = state.globalHistory.indexOf(item)

      // 如果index为-1就是没找到,index不等于-1就是找到了，把找到对应的历史记录删除
      if (index !== -1) {
        state.globalHistory.splice(index, 1)
      }

      state.globalHistory.unshift(item) // 往 globalHistory 加入一个历史记录

      // 把一个完整的历史记录数组作为参数传递
      setHistoryList(state.globalHistory)
    },

    // 移除搜索历史记录
    REMOVE_HISTORY(state) {
      state.globalHistory = []
      removeHistoryList()
    }
  },
  actions: {},
}
